package cn.getech.data.development.controller;


import cn.getech.data.development.constant.DataDevelopmentBizExceptionEnum;
import cn.getech.data.development.model.dto.AnalysisInfoConfigDto;
import cn.getech.data.development.model.dto.AnalysisInfoDto;
import cn.getech.data.development.model.dto.AnalysisMessageModelConfSaveDto;
import cn.getech.data.development.model.dto.AnalysisModelDataAndMappingDto;
import cn.getech.data.development.model.vo.*;
import cn.getech.data.development.service.IAnalysisMessageModelConfService;
import cn.getech.data.intelligence.common.utils.PojoUtils;
import cn.getech.data.intelligence.common.utils.R;
import cn.getech.data.intelligence.common.validator.ValidatorUtils;
import cn.getech.data.intelligence.common.validator.group.AddGroup;
import cn.getech.system.center.annotation.SysLog;
import cn.getech.system.center.constant.OperationModulesEnum;
import cn.getech.system.center.constant.OperationTypeEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 原始数据和模型的映射信息 前端控制器
 * </p>
 *
 * @author hujz
 * @since 2019-08-21
 */
@Api(tags = "原始数据和模型的映射信息")
@RestController
@RequestMapping("/bdp/analysisMessageModelConf")
public class AnalysisMessageModelConfController {

//    @Autowired
//    public IAnalysisMessageModelConfService iIAnalysisMessageModelConfService;
//
//
//    /**
//     * 根据分析任务id和模型id和数据源id获取模型配置信息
//     *
//     * @param analysisModelDataVO
//     * @author: hujz
//     * @date: 2019-08-21
//     */
//    @ApiOperation(value = "根据分析任务id和模型id和数据源id获取模型配置信息")
//    @SysLog(value="根据分析任务id和模型id和数据源id获取模型配置信息", type = OperationTypeEnum.SELECTCODE, modulesType = OperationModulesEnum.BDPMODELCODE)
//    @GetMapping("/getData")
//    public R getData(AnalysisModelDataVO analysisModelDataVO) {
//        Assert.notNull(analysisModelDataVO, DataDevelopmentBizExceptionEnum.PARAM_ERROR.getMessage());
//        AnalysisInfoDto analysisInfoDto = new AnalysisInfoDto();
//        BeanUtils.copyProperties(analysisModelDataVO, analysisInfoDto);
//        AnalysisModelDataAndMappingDto analysisModelDataAndMappingDto = iIAnalysisMessageModelConfService.getDataByConnect(analysisInfoDto);
//        if (null != analysisModelDataAndMappingDto) {
//            AnalysisModelDataAndMappingVO analysisModelDataAndMappingVO = new AnalysisModelDataAndMappingVO();
//            BeanUtils.copyProperties(analysisModelDataAndMappingDto, analysisModelDataAndMappingVO);
//            analysisModelDataAndMappingVO.setAnalysisInfoConfigVOList(PojoUtils.listConvert(AnalysisInfoConfigVO.class, analysisModelDataAndMappingDto.getAnalysisInfoConfigDtos()));
//            analysisModelDataAndMappingVO.setConfConnectVOList(PojoUtils.listConvert(ConfConnectVO.class, analysisModelDataAndMappingDto.getConfConnectDtos()));
//            return R.okWithData(analysisModelDataAndMappingVO);
//        }
//        return R.okWithData(null);
//    }
//
//
//    /**
//     * 保存数据
//     *
//     * @param analysisMessageModelConfSaveVO
//     * @author: hujz
//     * @date: 2019-08-21
//     */
//    @ApiOperation(value = "保存数据")
//    @SysLog(value="原始数据和模型的映射信息之保存数据", type = OperationTypeEnum.ADDCODE, modulesType = OperationModulesEnum.BDPMODELCODE)
//    @PostMapping("/save")
//    public R save(@RequestBody AnalysisMessageModelConfSaveVO analysisMessageModelConfSaveVO) {
//        Assert.notNull(analysisMessageModelConfSaveVO, DataDevelopmentBizExceptionEnum.PARAM_ERROR.getMessage());
//        //验证参数不能为空
//        ValidatorUtils.validateEntity(analysisMessageModelConfSaveVO, AddGroup.class);
//        AnalysisMessageModelConfSaveDto analysisMessageModelConfSaveDto = new AnalysisMessageModelConfSaveDto();
//        BeanUtils.copyProperties(analysisMessageModelConfSaveVO, analysisMessageModelConfSaveDto);
//        analysisMessageModelConfSaveDto.setAnalysisInfoConfigDtos(PojoUtils.listConvert(AnalysisInfoConfigDto.class, analysisMessageModelConfSaveVO.getAnalysisInfoMappingConfigVOList()));
//        iIAnalysisMessageModelConfService.save(analysisMessageModelConfSaveDto);
//        return R.ok();
//    }
//
//    /**
//     * 重新配置模型配置
//     *
//     * @param analysisModelDataVO
//     * @author: hujz
//     * @date: 2019-08-21
//     */
//    @ApiOperation(value = "重新配置模型配置")
//    @SysLog(value="原始数据和模型的映射信息之重新配置模型配置", type = OperationTypeEnum.UPDATECODE, modulesType = OperationModulesEnum.BDPMODELCODE)
//    @PostMapping("/reloadModelCof")
//    public R reloadModelCof(@RequestBody AnalysisModelDataVO analysisModelDataVO) {
//        Assert.notNull(analysisModelDataVO, DataDevelopmentBizExceptionEnum.PARAM_ERROR.getMessage());
//        AnalysisInfoDto analysisInfoDto = new AnalysisInfoDto();
//        BeanUtils.copyProperties(analysisModelDataVO, analysisInfoDto);
//        AnalysisModelDataAndMappingDto analysisModelDataAndMappingDto = iIAnalysisMessageModelConfService.reloadModelCof(analysisInfoDto);
//        if (null != analysisModelDataAndMappingDto) {
//            AnalysisModelDataAndMappingVO analysisModelDataAndMappingVO = new AnalysisModelDataAndMappingVO();
//            BeanUtils.copyProperties(analysisModelDataAndMappingDto, analysisModelDataAndMappingVO);
//            return R.okWithData(analysisModelDataAndMappingVO);
//        }
//        return R.okWithData(null);
//    }

}

